/*
 * Pikasial.java
 *
 * Created on 13 novembre 2007, 15:41
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package Modele;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Observable;




/**
 *
 * @author mathi178
 * Modify by Soufiane GARCH
 */
public class Pikasial {
    
    private Bibliotheque bibliotheque;
        
    /**
     * @author Soufiane GARCH
     * 
     * /
     * @param biblio
     */
    public Pikasial(Bibliotheque biblio){
        this.bibliotheque = biblio;
    }
    
    public Pikasial(String fichier)throws IOException{
        XStream xstream = new XStream(new DomDriver());
        FileReader fr;
        try{
                fr = new FileReader(fichier);
                //System.out.println(xstream.fromXML(fr));
                bibliotheque = (Bibliotheque) xstream.fromXML(fr);
                //System.out.println(xml);
                fr.close();
            }finally{
                //fr.close();
        }
    }
    /*public void ajouterImage(BufferedImage im,String address)
    {
        ModeleImage image=new ModeleImage(im,address);
        bibliotheque.ajouterImage(image); //largeur=im.getHeight(); (...)
        this.ajouterVue(new VueImage(this,address));
        miseAJourVues();
    }*/
    
    public void ajouterImage(File fichier, String nomAlbum)
    {
        if (fichier!=null)
        {
        ModeleImage image=new ModeleImage(fichier);
        if (image.getImage()!=null)
        {
            Album temp=new Album(nomAlbum);
            bibliotheque.ajouterAlbum(temp);
        }
        //sinon on n'ajoute pas d'image
        }
    }
    
    public void ajouterRepertoire(File repertoire)
    {
        bibliotheque.ajouterRepertoire(new Repertoire(repertoire.getAbsolutePath()));
    }
    
    public void suppressionRepertoire(Repertoire rep)
    {
        bibliotheque.supprimerRepertoire(rep);
    }
    
    public void ajouterAlbum(String s)
    {
        bibliotheque.ajouterAlbum(new Album(s));//remarque, si pas 2 albums possible > verification necessaire
    }
    
    public void ajouterAlbum(Album al){
        bibliotheque.ajouterAlbum(al);
    }
    
    public void suppressionAlbum(Album alb)
    {
        bibliotheque.supprimerAlbum(alb);
    }
    
    public void ajouterImageAlbum(String s, ModeleImage im)
    {
        Album alb=new Album(s);
        bibliotheque.addImEnsIm(im,alb);
    }
    
    public void supprimerImageAlbum(Album alb, ModeleImage im)
    {
        bibliotheque.remImEnsIm(im,alb);
    }
    
    public void supprimerImageRepertoire(Repertoire rep, ModeleImage im)
    {
        bibliotheque.remImEnsIm(im,rep);
    }
    

    
    /*public Repertoire rechercherRepertoire(String adresseRepertoire)
    {
        return bibliotheque.getRepertoire(adresseRepertoire);
    }
    
    public Repertoire[] getRepertoires()
    {
        return bibliotheque.getRepertoires();
    }
    
    public Album rechercherAlbum(String nomalbum)
    {
        return bibliotheque.getAlbum(nomalbum);
    }
    
    public Album[] getAlbums()
    {
        return bibliotheque.getAlbums();
    }*/
    
    /*public ModeleImage[] getImages()
    {
        return bibliotheque.getImages();
    }*/
    public int getSize()
    {
        return bibliotheque.getSize();
    }
    
    public Bibliotheque getBibliotheque()
    {
        return bibliotheque;
    }
        
}
